Thuật toán Thuật_toán_Grover

[Mạch lượng tử thể hiện Thuật Toán Grover

Các bước của thuật toán được thực hiện như sau. Cho | s ⟩ {\displaystyle |s\rangle } là chồng chập của các trạng thái:

| s ⟩ = 1 N ∑ x = 1 N | x ⟩ {\displaystyle |s\rangle ={\frac {1}{\sqrt {N}}}\sum _{x=1}^{N}|x\rangle } .

Toán tử

U s = 2 | s ⟩ ⟨ s | − I {\displaystyle U_{s}=2\left|s\right\rangle \left\langle s\right|-I}

là toán tử truyền thông tin (diffusion operator).

Thuật toán gồm các bước:

  1. Khởi tạo hệ thống ở trạng thái: | s ⟩ = 1 N ∑ x = 1 N | x ⟩ {\displaystyle |s\rangle ={\frac {1}{\sqrt {N}}}\sum _{x=1}^{N}|x\rangle }
  2. Thực hiện "Vòng lặp Grover" r(N) lần. Hàm r(N), có độ phức tạp O(N½), được miêu tả như sau.
    1. Thực hiện toán tử U ω {\displaystyle U_{\omega }} .
    2. Thực hiện toán tử U s {\displaystyle U_{s}} .
  3. Thực hiện phép đo Ω. Kết quả của phép đo sẽ là λω với xác suất tiến tới 1 khi N≫1. Từ λω, ta có thể tìm thấy ω.